package com.yang.frost.blueberry.mapper;

import com.yang.frost.blueberry.vo.SysRolePermissionQueryVo;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author 10296
 * @date 2021/1/15
 * @Description:
 */
public interface SysRolePermissionMapper {

    /**
     * 保存权限
     *
     * @param paramsMap
     * @return
     */
    int saveSysRolePermission(Map<String, Object> paramsMap);

    /**
     * 根据ID获取查询对象
     *
     * @param id
     * @return
     */
    SysRolePermissionQueryVo getSysRolePermissionById(Serializable id);

    /**
     * 获取分页对象
     *
     * @param paramsMap
     * @return
     */
    List<Map<String, Object>> getSysRolePermissionPageList(Map<String, Object> paramsMap);

    /**
     * 根据角色id获取可用的权限编码
     *
     * @param roleId
     * @return
     */
    Set<String> getPermissionCodesByRoleId(Long roleId);

    /**
     * 根据角色id获取该对应的所有三级权限ID
     *
     * @param roleId
     * @return
     */
    List<Long> getThreeLevelPermissionIdsByRoleId(@Param("roleId") Long roleId);

}
